package com.cyj.dream.admin.service.system;


import com.cyj.dream.admin.model.system.SysDepartment;

import java.util.List;

/**
 * @Description: 系统部门信息服务类
 * @BelongsProject: dream-DreamChardonnay
 * @BelongsPackage: com.dream.DreamChardonnay.service
 * @Author: ChenYongJia
 * @CreateTime: 2021-05-10 11:54
 * @Email: chen87647213@163.com
 * @Version: 1.0
 */
public interface SysDepartmentService {

    /**
     * 根据主键id查询系统部门信息
     *
     * @param sysDepartmentId 部门id
     * @return com.dream.DreamChardonnay.model.system.SysDepartment
     * @date 2021/5/31 14:09
     * @author ChenYongJia
     * @version 1.0
     */
    SysDepartment selectSysDepartmentBySysDepartmentId(Long sysDepartmentId);

    /**
     * 根据部门对象信息查询部门菜单树
     *
     * @param sysDepartment 部门对象
     * @return java.util.List<com.dream.DreamChardonnay.model.system.SysDepartment>
     * @date 2021-6-10 15:11:15
     * @author ChenYongJia
     * @version 1.0
     */
    List<SysDepartment> selectSysDepartmentTree(SysDepartment sysDepartment);

    /**
     * 根据部门id查询部门信息
     *
     * @param sysDepartmentParentId 部门id
     * @return java.util.List<com.dream.DreamChardonnay.model.system.SysDepartment>
     * @date 2021-5-31 14:12:08
     * @author ChenYongJia
     * @version 1.0
     */
    List<SysDepartment> selectSysDepartmentParent(Long sysDepartmentParentId);

    /**
     * 添加部门信息
     *
     * @param sysDepartment 部门对象
     * @return boolean
     * @date 2021-5-10 14:04:38
     * @author ChenYongJia
     * @version 1.0
     */
    boolean addDepartmentInfo(SysDepartment sysDepartment);

    /**
     * 修改部门信息
     *
     * @param sysDepartment 部门对象
     * @return boolean
     * @date 2021-5-10 14:04:38
     * @author ChenYongJia
     * @version 1.0
     */
    boolean updateDepartmentInfo(SysDepartment sysDepartment);

    /**
     * 删除部门信息（逻辑删除）
     *
     * @param sysDepartment 部门对象
     * @return boolean
     * @date 2021-5-10 14:04:38
     * @author ChenYongJia
     * @version 1.0
     */
    boolean deleteDepartmentInfo(SysDepartment sysDepartment);

    /**
     * 根据部门列表
     *
     * @return java.util.List<com.dream.DreamChardonnay.model.system.SysDepartment>
     * @date 2021-6-10 15:37:39
     * @author ChenYongJia
     * @version 1.0
     */
    List<SysDepartment> selectSysDepartmentList();

}
